#include <iostream>
#include <string>
using namespace std;
#include "BSTree.h"


//void TestBSTree()
//{
//	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
//	BSTree<int> t1;
//
//	for (auto e : a)
//	{
//		t1.Insert(e);
//	}
//
//	//t1.InOrder(t1.GetRoot());
//	t1.InOrder();
//
//	t1.Erase(4);
//	t1.InOrder();
//
//	t1.Erase(14);
//	t1.InOrder();
//
//	t1.Erase(3);
//	t1.InOrder();
//
//	t1.Erase(8);
//	t1.InOrder();
//}

//void TestBSTree()
//{
//	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
//	BSTree<int> t1;
//	
//
//	for (auto e : a)
//	{
//		t1.Insert(e);
//	}
//	BSTree<int> t2(t1);
//
//	//t1.InOrder(t1.GetRoot());
//	t1.InOrder();
//
//	
//
//	t1.EraseR(14);
//	t1.InOrder();
//
//	t1.EraseR(13);
//	t1.InOrder();
//
//	//t1.Erase();
//	//t1.InOrder();
//
//
//	for (auto e : a)
//	{
//		t1.EraseR(e);
//		t1.InOrder();
//	}
//
//	t1.InOrder();
//	t2.InOrder();
//}

//void TestBSTree()
//{
//	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
//	BSTree<int> t1;
//	
//
//	for (auto e : a)
//	{
//		t1.Insert(e);
//	}
//	BSTree<int> t2 = t1;
//	t1.InOrder();
//	t2.InOrder();
//	t1.EraseR(14);
//	t1.InOrder();
//	t2.InOrder();
//
//	t1.EraseR(13);
//	t1.InOrder();
//	t2.InOrder();
//
//	t1.Erase(8);
//	t1.InOrder();
//	t2.InOrder();
//
//	t1.~BSTree();
//	t2.~BSTree();
//}


int main()
{
	key_value::TestBSTree();
	return 0;
}
